Mobile computing devices such as smartphones and tablets are becoming more widely used every day. Android is an open-source, Linux based operating system for such mobile devices. Android, which continues to gain increasingly prevalent market share, accounted for approximately 80% of all smartphones shipped in the second quarter of 2013. A large community of developers write applications (“apps”) that run on Android devices. Many Android apps are available either for purchase or for free through Google Play (formerly known as Android Market). Android apps can also be downloaded from other online stores and additional third-party sites.
In addition to phone and Wi-Fi connectivity, current mobile computing devices are typically equipped with a variety of popular features, such as a web browser, a digital camera and apps to manage a library of photographs and videos, sound input/output hardware and apps for managing a library of audio recordings, Bluetooth, NFC, apps for interacting with social media sites, apps for reading print media, etc. These devices are also generally equipped with a GPS, and many apps provide services to users based on current physical location. The devices can also include input hardware such as an accelerometer, gyroscope and proximity sensor, which can be used to control and customize interaction with the user in a wide variety of different ways. Thus, a current mobile device puts a great deal of computing power in the user's pocket or purse.
Current mobile computing devices require a significant amount of power to run, and are powered by rechargeable batteries. A mobile computing device's battery is charged by connecting the device to an external power source, such as a wall socket via a USB connection and an adaptor. An external power source is not always available, and even when it is, charging a mobile device can be inconvenient for the user. Generally, improvements in mobile batteries have lagged behind developments in processors and other mobile computing technology. The limited capacity of the battery can be a weak point in the capabilities of a mobile device. With the intensive power demands of mobile devices, many users find that the amount of time for which battery power is available between changes is less than ideal. Therefore, it is desirable to conserve power to the extent practicable, and not drain the battery any faster than necessary.
For this reason, Android uses a sleep mode in which the screen is turned off and the operations of the system are suspended. This significantly decreases power consumption, and thus prolongs the battery life. Android puts a device into sleep mode after a given amount of time has passed without activity, or in response to an indication from the user (typically, a quick press of the power switch). However, Android allows apps to run background tasks when the screen is off and the mobile device would otherwise be in sleep mode, which can be useful but also draws power. It is desirable for some background activity to occur during these times. For example, a user may want to continue listening to music even after the screen times out in response to no user activity occurring for a given period of time, which requires that the music player continues to operate in the background with the screen off. As another example, a phone might be configured to periodically pull e-mail from a server when the screen is off and the phone would otherwise be sleeping. However, if background tasks are run too often or for too long, the battery can be drained significantly when the device is supposed to be sleeping. Some badly designed apps prevent the mobile device from sleeping in order to run their own background tasks without proper regard for power consumption, and thus run down the battery while the phone is meant to be in sleep mode.
It would be desirable to address these issues.